package ejb.cbm.seguridad.entity;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.UniqueConstraint;

@Entity
@Table(name="REGISTROPERFIL", 
	   uniqueConstraints = { @UniqueConstraint( columnNames = {"TIPOREGISTRO", "VALORREGISTRO" } ) }
)
@SequenceGenerator(name="REGISTROPERFIL_SEQ", sequenceName="sq_registroperfil")
public class RegistroPerfilEntity  implements java.io.Serializable {

    // Fields    

     /**
	 * 
	 */
	private static final long serialVersionUID = -1714342596289609048L;
	private Long idregistroperfil;
     private Long codigoperfil;
     private Long tiporegistro;
     private String valorregistro;
     private String descripcion;
     private Long flagactivo;
     private String usuarioregistro;
     private Date fecharegistro;
     private String usuariomodificacion;
     private Date fechamodificacion;

     private PerfilEntity perfil;

    // Constructors

    /** default constructor */
    public RegistroPerfilEntity() {
    }

	/** minimal constructor */
    public RegistroPerfilEntity(Long idregistroperfil, Long codigoperfil, Long tiporegistro, String valorregistro, String usuarioregistro, Date fecharegistro, String usuariomodificacion, Date fechamodificacion) {
        this.idregistroperfil = idregistroperfil;
        this.codigoperfil = codigoperfil;
        this.tiporegistro = tiporegistro;
        this.valorregistro = valorregistro;
        this.usuarioregistro = usuarioregistro;
        this.fecharegistro = fecharegistro;
        this.usuariomodificacion = usuariomodificacion;
        this.fechamodificacion = fechamodificacion;
    }
    
    /** full constructor */
    public RegistroPerfilEntity(Long idregistroperfil, Long codigoperfil, Long tiporegistro, String valorregistro, String descripcion, Long flagactivo, String usuarioregistro, Date fecharegistro, String usuariomodificacion, Date fechamodificacion) {
        this.idregistroperfil = idregistroperfil;
        this.codigoperfil = codigoperfil;
        this.tiporegistro = tiporegistro;
        this.valorregistro = valorregistro;
        this.descripcion = descripcion;
        this.flagactivo = flagactivo;
        this.usuarioregistro = usuarioregistro;
        this.fecharegistro = fecharegistro;
        this.usuariomodificacion = usuariomodificacion;
        this.fechamodificacion = fechamodificacion;
    }

   
    // Property accessors
    @Id
    @Column(name="IDREGISTROPERFIL", unique=true, nullable=false, insertable=true, updatable=true, precision=8, scale=0)
    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="REGISTROPERFIL_SEQ")
    public Long getIdregistroperfil() {
        return this.idregistroperfil;
    }
    
    public void setIdregistroperfil(Long idregistroperfil) {
        this.idregistroperfil = idregistroperfil;
    }
    
    @Column(name="CODIGOPERFIL", unique=false, nullable=false, insertable=true, updatable=true, length=10)
    public Long getCodigoperfil() {
        return this.codigoperfil;
    }
    
    public void setCodigoperfil(Long codigoperfil) {
        this.codigoperfil = codigoperfil;
    }
    
    @Column(name="TIPOREGISTRO", unique=false, nullable=false, insertable=true, updatable=true, precision=8, scale=0)
    public Long getTiporegistro() {
        return this.tiporegistro;
    }
    
    public void setTiporegistro(Long tiporegistro) {
        this.tiporegistro = tiporegistro;
    }
    
    @Column(name="VALORREGISTRO", unique=false, nullable=false, insertable=true, updatable=true, length=10)
    public String getValorregistro() {
        return this.valorregistro;
    }
    
    public void setValorregistro(String valorregistro) {
        this.valorregistro = valorregistro;
    }
    
    @Column(name="DESCRIPCION", unique=false, nullable=true, insertable=true, updatable=true, length=50)
    public String getDescripcion() {
        return this.descripcion;
    }
    
    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }
    
    @Column(name="FLAGACTIVO", unique=false, nullable=true, insertable=true, updatable=true, precision=1, scale=0)
    public Long getFlagactivo() {
        return this.flagactivo;
    }
    
    public void setFlagactivo(Long flagactivo) {
        this.flagactivo = flagactivo;
    }
    
    @Column(name="USUARIOREGISTRO", unique=false, nullable=false, insertable=true, updatable=true, length=30)
    public String getUsuarioregistro() {
        return this.usuarioregistro;
    }
    
    public void setUsuarioregistro(String usuarioregistro) {
        this.usuarioregistro = usuarioregistro;
    }
    @Temporal(TemporalType.TIMESTAMP)
    @Column(name="FECHAREGISTRO", unique=false, nullable=false, insertable=true, updatable=true, length=7)
    public Date getFecharegistro() {
        return this.fecharegistro;
    }
    
    public void setFecharegistro(Date fecharegistro) {
        this.fecharegistro = fecharegistro;
    }
    
    @Column(name="USUARIOMODIFICACION", unique=false, nullable=false, insertable=true, updatable=true, length=30)
    public String getUsuariomodificacion() {
        return this.usuariomodificacion;
    }
    
    public void setUsuariomodificacion(String usuariomodificacion) {
        this.usuariomodificacion = usuariomodificacion;
    }
    @Temporal(TemporalType.TIMESTAMP)
    @Column(name="FECHAMODIFICACION", unique=false, nullable=false, insertable=true, updatable=true, length=7)
    public Date getFechamodificacion() {
        return this.fechamodificacion;
    }
    
    public void setFechamodificacion(Date fechamodificacion) {
        this.fechamodificacion = fechamodificacion;
    }
	
	@ManyToOne(cascade={},fetch=FetchType.LAZY)
    @JoinColumn(name="CODIGOPERFIL", unique=false, nullable=false, insertable=false, updatable=false)
	public PerfilEntity getPerfil() {
		return perfil;
	}

	public void setPerfil(PerfilEntity perfil) {
		this.perfil = perfil;
	}
}